| PROGRAMOWANIE |  Kurs VB cz.X   

  Witam w dziesi▒tej ju┐ z kolei czΩ╢ci VBKurs'u. Poznali╢my ju┐ ╢rodowisko pracy w VB, podstawowe pojΩcia, to jakie opcje do jakich opcji nale┐▒, pΩtle, pisali╢my nawet jeden wielki program, kt≤rego pisania nie zako±czyli╢my, ale pom≤g│ on zrozumieµ nam pewne zagadnienia. Poznali╢my te┐ rejestr(chyba to wszystko jak na razie). Dodam, ┐e koniec zbli┐a siΩ wielkimi krokami, ale jeszcze parΩ czΩ╢ci bΩdzie. Dodam, ┐e w ko±cu ten kurs mia│ omawiaµ podstawy za kt≤re ju┐ trochΩ wykroczyli╢my, ale to nic!!!
  W tej czΩ╢ci om≤wimy inny spos≤b zapisywania i odczytywania danych. Z pewno╢ci▒ lepszy i pewniejszy ni┐ rejestr.

Pliki INI


Aby nasz odczyt pliku INI dzia│a│ musimy wpierw wykreowaµ modu│. Klikamy w eksploratorze projektu programu prawym klawiszem myszy, wybieramy new, p≤╝niej module.
Zosta│ utworzony modu│. Do jego zawarto╢ci musimy wpisaµ nastΩpuj▒cy kod:

Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As Any, ByVal lpFileName As String) As Long
Function OdczytINI(Sekcja, Klucz, ªcie┐ka As String) As String
Dim sRet As String
sRet = String(255, Chr(0))
OdczytINI = Left(sRet, GetPrivateProfileString(Sekcja, ByVal Klucz, "", sRet, Len(sRet), ªcie┐ka))
End Function
Function ZapisINI(zSekcja As String, zKlucz As String, zDane As String, zªcie┐ka) As Integer
WritePrivateProfileString zSekcja, zKlucz, zDane, zªcie┐ka
End Function

W tym kodzie deklarujemy dwie funkcje dostΩpne w Windows, kt≤re umo┐liwiaj▒ nam na zarz▒dzanie plikami INI. P≤╝niej nastΩpne dwie funkcje, kt≤re s│u┐▒ nam do zapisu i odczytu w pliku.

Gdy ju┐ to mamy zrobione musimy mieµ plik INI, kt≤rego brak podczas uruchomienia programu spowoduje b│▒d, wiΩc musimy utworzyµ taki plik w folderze projektu naszego programu. Plik ten powinien wygl▒daµ przyk│adowo:

[imie]
loadname=Filip
[nazwisko]
loadlastname=Cynarski


Plik powinien nazywaµ siΩ program i mieµ rozszerzenie INI, czyli tak powinien on wygl▒daµ: program.ini .

Je╢li ju┐ to zrobili╢my przenosimy siΩ do okna naszego programu i dodajemy dwie kontrolki TextBox. Pierwsz▒ kontrolkΩ nazywamy(wart. name) txtOdczyt, a drug▒ Text1. Dodajemy te┐ kontrolkΩ CommandButton, kt≤rej warto╢µ Caption ustawiamy na Zapisz. Teraz przechodzimy do okna kodu naszego projektu i wpisujemy nastΩpuj▒cy kod:

Private Sub Command1_Click()
ZapisINI "imie", "loadname", txtOdczyt.Text, sc + "program.ini" 'wykorzystanie funkcji zdefinionwanej w module o nazwie
ZapisINI z podaniem odpowiedich informacji
ZapisINI "nazwisko", "loadlastname", Text1.Text, sc + "program.ini" 'to samo. Nazwisko nazwa klucza, loadlastname nazwa sekcji, Text1.Text miejsce pobrania kt≤re ma zostaµ zapisane, sc + program.ini po│o┐enie pliku bazy danych
txtOdczyt.Refresh 'od╢wie┐enie
Text1.Refresh 'to samo
End Sub
Private Sub Form_Load()
sc = App.Path + "\" 'przypo┐▒dkowanie zmiennej sc po│o┐enia programu
txtOdczyt.Text = OdczytINI("imie", "loadname", sc + "program.ini") 'pdczyt przy u┐yciu funkcji z modu│u. Funkcja ma nazwΩ
odczyt INI Text1.Text = OdczytINI("nazwisko", "loadlastname", sc + "program.ini") 'to samo
End Sub


  W tym momencie mamy ju┐ gotowy program! Chcesz przyk│ad?! To go tu Masz!
W takim wypadku Mo┐esz siΩ pokusiµ o rozszerzenie tego programu przyk│adowego, aby zapisywa│ wiΩcej danych i wiadomo╢ci. Jest to │atwe, a w szczeg≤lno╢ci dla Ciebie(o ile Uczy│e╢ siΩ z VBKurs'u) od pocz▒tku. Wystarczy tylko odpowiednio przeanalizowaµ kod i wyobraziµ sobie dzia│anie programu.

Podpowied╝:

Do tego celu Zmodyfikuj plik INI i u┐yj pΩtli. Jakiej?! To ju┐ Sam uznaj jaka bΩdzie najlepsza do tego celu.

Je╢li Zrobi│e╢ ju┐ to! To Sku╢ siΩ przys│aµ mi swoje dzie│o. Mo┐e dostaniesz nagrodΩ?!

W nastΩpnym numerze napiszemy program, kt≤ry bΩdzie trwa│ przez kilka numer≤w i on w│a╢nie uwie±czy nasz kurs! Pozdrawiam!!!

 

Autor:
Filip Cynarski
filip@webhelp.pl
http://vbgo.prv.pl



                    
ARCHIWALIA | WEBHELP.PL | REDAKCJA                  POPRZEDNIA STRONA | SPIS TREªCI | NAST╩PNA STRONA

CONTENTS COPYRIGHT © 2000 - 2001, KRZYSZTOF DZIEWO╤SKI. ALL RIGHTS RESERVED.